1
课程表现简报
DSAI2202Lab 5: Grouping and Summarising Data

UniLearn 教务系统需要一份虚构的 2026 学年课程表现报告。请汇总 在读选课记录,包括尚未有成绩的学生。

准备 PostgreSQL 数据

  1. 在 pgAdmin 查询工具中打开练习数据库。开启 自动提交 。
  2. 选择 打开文件 ,然后选择单独提供的 lab5_setup.sql。
  3. 执行整个文件。它会选择 lab5 模式。在同一个查询工具中,复制 代码 选项卡中的检查查询,确认返回 36 行。

一行代表什么?

一行代表 一名学生在一门课程中的选课记录。S101 选修了三门课程,因此 S101 会出现三次。选课记录数与学生人数可能不同。

构建教务报告

  • 统计选课记录数、已记录成绩数和不同学生数。
  • 计算每门课程的总分和平均分。
  • 保留符合所要求汇总条件的课程。
💡 汇总前必读
NULL 表示没有记录成绩; 0 是一份已记录的成绩。退选记录仍保留在表中,但不纳入报告。

预览:36 条选课记录中的前 12 条

完整的 enrolments 表包含六门课程中的 20 名不同学生。六条退选记录将从报告中过滤掉。运行检查查询以查看全部 36 行。

选课ID学生专业课程状态成绩学时
E01S101DSAISQL101在读806
E02S102CSSQL101在读604
E03S103DSAISQL101在读NULL5
E04S104ITSQL101退选902
E05S101DSAIPY101在读908
E06S105CSPY101在读506
E07S106DSAIPY101在读707
E08S107ITPY101在读NULL3
E09S102CSVIS101在读404
E10S108DSAIVIS101在读NULL2
E11S109ITVIS101退选1001
E12S110ITVIS101在读01

解读各列

  • enrolment_id 标识一条选课记录; student_id 可能重复。
  • score 是百分制成绩,未记录时为 NULL。
  • study_hours 记录这条选课记录的学习时长。
💡 PostgreSQL 语法
文本值使用单引号。数字和 SQL NULL 则不用。每条语句以分号结尾。